package com.boarsoft.boar.admin.biz;

import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import com.boarsoft.boar.admin.DeptBiz;
import com.boarsoft.boar.sys.entity.SysUser;
import com.boarsoft.hibernate.biz.SimpleBizImpl;

@Component("deptBiz")
public class DeptBizImpl extends SimpleBizImpl implements DeptBiz {
	/**
	 * 删除部门
	 *
	 * @param id-部门id
	 */
	@Override
	@Transactional
	public void delete(String id) {
		// 删除部门时把这个部门下的用户的deptId设置为空(该部门的员工仍然属于某个公司)
		// 如果部门有build_source，由附加的切面执行其它的关联操作，可能的切面有：sourceBizImpl
		this.updateSysUser(id);
	}

	/**
	 * 删除部门后，更新这个部门下的员工所属部门id为空
	 *
	 * @param id-部门id
	 */
	@Override
	@Transactional
	public void updateSysUser(String id) {
		StringBuilder sb = new StringBuilder();
		sb.append("update ").append(SysUser.class.getName());
		sb.append(" set deptId='' where deptId='").append(id).append("'");
		log.info(sb.toString());
		dao.executeUpdate(sb.toString());
	}
}